package unmsm.eapisw.taller.srh_persistencia.dao.impl;

import java.util.List;

import org.hibernate.SessionFactory;

import unmsm.eapisw.taller.srh_persistencia.dao.IPermisosDAO;
import unmsm.eapisw.taller.srh_persistencia.modelo.Administrador;
import unmsm.eapisw.taller.srh_persistencia.modelo.Permisos;

public class PermisosDAO implements IPermisosDAO{
	private SessionFactory sessionFactory;

	/**
	 * Get Hibernate Session Factory
	 * 
	 * @return SessionFactory - Hibernate Session Factory
	 */
	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	/**
	 * Set Hibernate Session Factory
	 * 
	 * @param SessionFactory
	 *            - Hibernate Session Factory
	 */
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
	
	public void addPermiso(Permisos p) {
		getSessionFactory().getCurrentSession().save(p);
	}

	public void getPermisosByIdUsuario(int idUsuario) {
//List list = getSessionFactory().getCurrentSession().createQuery("from Administrador where usuario = ?").setParameter(0, usuario).list();
		//From Persona per inner join per.direccion
		//List list = getSessionFactory().getCurrentSession().createQuery("from Administrador where usuario = ?").setParameter(0, idUsuario).list();
	}

	public List<Permisos> getPermisosByTipo(int paraTipo) {
		/*
		 * 		System.out.println("getAdministradorById - DAO");
		List list = getSessionFactory().getCurrentSession().createQuery("from Administrador where usuario = ?").setParameter(0, usuario).list();
		
		if(list==null || list.isEmpty()){
			System.out.println("getAdministradorById - no se encontró usuario");
			return null;
		}
		return (Administrador) list.get(0);
		 * **/
		List list = getSessionFactory().getCurrentSession().createQuery("from Permisos where paratipo = ?").setParameter(0, paraTipo).list();
		
		return list;
	}

}
